(function(){
    $.fn.extend({
        waterfall: function(options){
            var opts = $.extend({}, defaluts, options);
            var windowW = $('body').addClass('oh').outerWidth(true);
                $('body').removeClass('oh');
            var $this = $(this);
            if(windowW > 991){
                columns = opts.mdC;
            }else if( windowW > 767){
                columns = opts.smC;
            }else{
                columns = opts.xsC;
            }

            $this.css({
                'width': $this.parent().width()
            });
            // console.log($this.parent().width(),parseFloat(opts.padding));
            var postop = [],
                boxW = Math.ceil($this.width()),
                itemW,
                columns;

            itemW = Math.floor(boxW / columns);


            $this.find(opts.item).css({
                'width': itemW
            }).each(function(index){
                if(index < columns){
                    $(this).css({
                        'position': 'absolute',
                        'top': 0,
                        'left': itemW * index
                    });
                    //把高度直接加入数组中
                    postop[index] = $(this).outerHeight(true);
                }else{
                    //获取数组中最小的一个
                    var mintop = Math.min.apply(null,postop);
                    //获取到数组最小值对应的排序
                    var minindex = $.inArray(mintop,postop);
                    $(this).css({
                        'position': 'absolute',
                        'top': mintop,
                        // $this.find(opts.item).eq(minindex).css('left')
                        'left': itemW * minindex
                    });
                    // console.log($(this).outerHeight(true))
                    postop[minindex] += $(this).outerHeight(true);//更新数组
                    // 父级高度
                    $this.height($(this).position().top + $(this).outerHeight(true));
                }
            });
        }
    });
    var defaluts = {
        xsC: 1,
        smC: 2,
        mdC: 3,
        item: "li"
    };
})(jQuery);

// 图片预加载
// function loadImage(url) {
//     var img = new Image(); 
//     //创建一个Image对象，实现图片的预下载
    
//     if (img.complete) {
//         return img.src;
//     }
//     img.onload = function () {
//         return img.src;
//     };
//     img.src = url;
// }

//检验是否满足加载数据条件，即触发添加块框函数waterfall()的高度：最后一个块框的距离网页顶部+自身高的一半(实现未滚到底就开始加载)
function checkscrollside(parent,clsName){
    var BoxH = $(parent).outerHeight(true),
        scrollTop = $(document).scrollTop(),
        windowH = $(window).height();
    return BoxH < windowH + scrollTop ? true : false;
}